<?php

require_once 'MainPageWidget.php';
class AnnounceItemWidget extends MainPageWidget
{
	public $title = 'Тема дня'; // анонсирует запись / или произвольный текст
	public $item_oid = NULL; // oid анносируемой записи
	public $header = NULL; // заголовок аннонсируемой записи (выбирается из oid или вводится юзером)
	public $body = NULL; // текст аннонсируемой записи (выбирается из oid или вводится юзером)
	public $ui_settingsjs = "widget/hp/announceitem.js"; // кнопки в меню настроек виджета
	
	private function getOneItem( $item_oid ) {
		if ($item_oid==null) {
			return array();
		}

		$this->ctx->rh->UseClass("AggregatedModel_Feed_FeedInterface");
		$this->ctx->rh->UseClass("AggregatedModel_Feed_ReaderItems");
		
		$rdr = new AggregatedModel_Feed_ReaderItems();
		$rdr->rh = $this->ctx->rh;
		$rdr->setModelParams("community_oid", $this->acl_assistant->acl_data['comity_oid']);
		$rdr->setModelParams("item_oid", $item_oid);
		$rdr->setModelParams("page_number", 1);
		$rdr->setModelParams("page_citems", 1);
		
		$rdr->doStuff();
		list($item) = $rdr->getItems();
		return $item;
		
	}
	
	private function init()
	{
		$this->ctx->rh->UseClass('RL_CyrDate');
	}

	public function Render()
	{
		$this->init();
		$content = $this->getOneItem( $this->item_oid );

		// простой вывод данных из конфига
		$this->item_not_set  = count($content) == 0;
		if (!$this->header && isset($content['post']['title'])) { $this->header = $content['post']['title']; }
		if (!$this->body && isset($content['post']['body'])) $this->body = $content['post']['body'];
		if (!$this->body && isset($content['post']['announce'])) $this->body = $content['post']['announce'];
		$this->content = $content;
		return $this;

	}

	public function beforeUpdateSettings (&$config)
	{
		if ($config['item_oid'] !== $this->item_oid) {
			$this->init();
			$content = $this->getOneItem( $this->item_oid );
			if (isset($content['post']['title'])) $config['header'] = $content['post']['title'];
			if (isset($content['post']['body']))  $config['body'] = $content['post']['body'];
		}
	} // end of method beforeUpdateSettings

	public function settingsForm()
	{
		$content = $this->getOneItem( $this->item_oid );

		// простой вывод данных из конфига
		$header = (!$this->header && isset($content['post']['title'])) ? $header = $content['post']['title']    : $this->header;
		$body   = (!$this->body && isset($content['post']['body']))    ? $body   = $content['post']['body']     : $this->body;
		$body   = (!$body && isset($content['post']['announce']))      ? $body   = $content['post']['announce'] : $body;

		$config['form'] = array(
			'title' => 'Анонс записи',
			'fields' => array(

				'title' => array(
					'type' => 'text',
					'title' => 'Название',
					'default' => $this->title,
					'description' => 'Заголовок виждета',
				),

				'item_oid' => array(
					'type' => 'text',
					'title' => 'Статья которую мы анонсируем',
					'description' => 'Введите id записи, которую хотите анонсировать (автосаггест появится позднее)',
					'default' => $this->item_oid,
				),

				'header' => array(
					'type' => 'text',
					'title' => 'Заголовок статьи',
					'description' => 'До 100 символов',
					'default' => $header,
				),

				'body' => array(
					'type' => 'wysiwig',
					'title' => 'Краткое превью статьи',
					'description' => '',
					'default' => $body,
				),
			),
		);
		return $config['form'];
	} // end of method settingsForm
}

